1. Field of the Invention
The present invention relates to the field of code optimization. More specifically, the present invention relates to automatically tuning code.
2. Description of the Related Art
Tools for improving code performance are frequently not fully utilized. For example, compilers, such as that provided in the Sun Java System Services Suite (previously Sun ONE Studio) from Sun Microsystems, Inc., provide extensive functionality for improving code performance. However, many users of the compilers do not utilize the functionality. Users may not be entirely familiar with a compiler and its complexities, may not possess the resources to become familiar with the compiler or to utilize the extensive functionality, may not have the time within their code delivery schedule to apply the feature(s) to their code, etc. Hence, the default compilation environment is typically used. The default compilation environment will most likely have features enabled that are generally applicable to code. Relying on the default setting alone prevents discovery and utilization of the feature(s) available to improve performance of their code, essentially foregoing the capability to tailor a compilation environment for their code.
Numerous features and capabilities encumber a compiler tool because of the amount of manual effort required to select a set of optimization flags for an application. Sifting through the numerous combinations of optimization flags available for a compiler, even with the benefit of experience and knowledge about the compiler, may require significant investment in time of personnel for each code to be tuned.